package com.atguigu.tingshu.album.service;

import com.atguigu.tingshu.model.album.BaseAttribute;
import com.atguigu.tingshu.model.album.BaseCategory1;
import com.atguigu.tingshu.model.album.BaseCategory3;
import com.atguigu.tingshu.model.album.BaseCategoryView;
import com.atguigu.tingshu.vo.album.AlbumCategoryVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface BaseCategoryService extends IService<BaseCategory1> {

    /**
     * 描述：获取所有专辑分类信息（一、二、三级分类）
     *
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    List<AlbumCategoryVo> getAllBaseCategoryList();

    /**
     * 描述：获取专辑分类信息（一、二、三级分类）
     *
     * @param category1Id 一级分类ID
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    AlbumCategoryVo getBaseCategoryList(Long category1Id);

    /**
     * 描述：查询所有一级分类
     *
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    List<BaseCategory1> findAllCategory1();

    /**
     * 描述：查询一级分类下的所有三级分类
     *
     * @param categoryId 一级分类id
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    List<BaseCategory3> findTopBaseCategory3(Long categoryId);

    /**
     * 描述：查询一级分类下的所有属性
     *
     * @param category1Id
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    List<BaseAttribute> findAttribute(Long category1Id);

    /**
     * 描述：根据三级分类标签获取分类信息
     *
     * @param category3Id
     * @return
     * @author daiyuling
     * @date 2025/10/20
     */
    BaseCategoryView getCategoryView(Long category3Id);
}
